Social discovery of user activity for media content

ABSTRACT

Aspects of the present disclosure provide techniques that may enable user activity information to be automatically generated and shared with other users of a social network. In one example, a method of automatically publishing, to one or more social network services, information about user activities regarding media content items includes receiving user activity information regarding a media content item, wherein a user is a member of one or more social network services, and the user activity information is generated in response to one or more activities taken by the user with respect to the media content item. The method may also include receiving an indication of one or more users of the one or more social network services to whom the user activity information is to be made accessible, and automatically publishing the user activity information to the one or more social network services.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.13/551,405, filed Jul. 17, 2012, which is a continuation of ApplicationSerial No. PCT/IB2011/002964, filed Oct. 27, 2011, which claims thebenefit of U.S. Provisional Application No. 61/407,097, filed Oct. 27,2010, the entirety of which are incorporated by reference herein.

TECHNICAL FIELD

The disclosure relates to electronic media content and, moreparticularly, to sharing information about users interacting with theelectronic media content.

BACKGROUND

Computing networks enable users to access and interact with electronicmedia content (hereinafter “media content”), including: audio content(e.g., music, audio books, podcasts, etc.), visual content (e.g.,videos, images, etc.), textual content (e.g., electronic books, etc.),and program content (e.g., software applications, computer programs,etc.).

SUMMARY

In one example, a method includes receiving, by a computing device, userassociation information from a client device, and receiving, by thecomputing device, user activity information, wherein the user activityinformation is generated in response to one or more actions performed bya user of the client device at a media application executable by theclient device without requiring the user to enter a command to cause theuser activity information to be generated, and wherein the user activityinformation includes an indication of at least one of playing mediacontent, viewing media content, purchasing media content, organizingmedia content, commenting on other user activity information, executingmedia content, and downloading media content. The method may alsoinclude outputting the user activity information for the client devicebased on the user association information.

In another example, a computer-readable storage medium includesinstructions that, when executed, cause one or more processors toperform operations. The operations include receiving, by a computingdevice, user association information from a client device, andreceiving, by the computing device, user activity information, whereinthe user activity information is generated in response to one or moreactions performed by a user of the client device at a media applicationexecutable by the client device without requiring the user to enter acommand to cause the user activity information to be generated, andwherein the user activity information includes an indication of at leastone of playing media content, viewing media content, purchasing mediacontent, organizing media content, commenting on other user activityinformation, executing media content, and downloading media content. Theoperations may further include outputting the user activity informationfor the client device based on the user association information.

In another example, a device includes at least one programmableprocessor, a network interface, and a user activity server. The networkinterface is configured to receive user association information from aclient device, and receive user activity information, wherein the useractivity information is generated in response to one or more actionsperformed by a user of the client device at a media applicationexecutable by the client device without requiring the user to enter acommand to cause the user activity information to be generated, andwherein the user activity information includes an indication of at leastone of playing media content, viewing media content, purchasing mediacontent, organizing media content, commenting on other user activityinformation, executing media content, and downloading media content. Theuser activity server is operable by the one or more processors to outputthe user activity information for the client device based on the userassociation information.

The details of one or more embodiments are set forth in the accompanyingdrawings and the description below. Other features, objects, andadvantages will be apparent from the description and drawings, and fromthe claims.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a conceptual diagram illustrating an example network systemfor social discovery of user activity for media content, in accordancewith one or more aspects of this disclosure.

FIG. 2 is a block diagram illustrating an example computing device forgenerating and publishing user activity information based at least inpart of user association information, in accordance with one or moreaspects of this disclosure.

FIG. 3 is a screen illustration showing an example graphical userinterface that includes published user activity information, inaccordance with one or more aspects of the present disclosure.

FIG. 4 is a screen illustrating showing another example user interfacethat includes published user activity information, in accordance withone or more aspects of the present disclosure.

FIG. 5 is a flow chart illustrating an example process for aggregatingand publishing user activity information based at least in part of userassociation information, in accordance with one or more aspects of thisdisclosure.

DETAILED DESCRIPTION

People listen to music, install applications, and generally interactwith various different types of electronic media content. Mediaapplications may enable users to view, execute, listen, purchase,install, or otherwise interact with a variety of media content items.One or more other users (e.g., friends, family members, or otherindividuals) may wish to learn which the media content items with whichthe user is interacting. For example, friends and family may be a goodsource of information about new software applications, music, books,movies, etc. that a particular person may enjoy. However, friends andfamily members may use different media applications or differentcomputing platforms for interacting with the media content, which maymake it more difficult to share the information with each other.

Techniques of the present disclosure provide a mechanism for a person toshare information about media content and the person's interactions withthe media content with select other people even though the people mayuse different media applications that may be incompatible. Further,techniques of the present disclosure may enable the user activityperformed by a person (e.g., through interacting with media content) tobe automatically shared with selected individuals. That is, as theperson interacts with the media content items, the media application maystore information about the user activity and automatically publishinformation about the user activity to selected people without requiringthe person to perform additional activities (e.g., issue a command tothe media application, manually enter user activity information into athird party service, etc.) to cause the information to be published. Insome examples, user activity information may be published to a subset ofusers of a social network as defined by user association information.User activity information may be generated in a manner that istransparent to the user as the user interacts with media content via amedia application.

FIG. 1 is a conceptual diagram illustrating an example network systemfor social discovery of user activity for media content, in accordancewith one or more aspects of this disclosure. FIG. 1 includes clientdevices 4, 34 and server system 24. Client device 4 includes inputdevice 10, output device 12, and media application 6, which furtherincludes user activity module 8. Media application 6 may further causeoutput device 10 to display graphical user interface (GUI) 14. GUI 14may further include social network activity entries 16A, 16B. Clientdevices 34A, 34B are computing devices similar to client device 4 andfurther include respective media applications 36A, 36B similar to mediaapplication 6.

Server system 24 may include one or more server computing devices. Asshown in FIG. 1, server system 24 includes user activity server 26 andmedia server 28. Each of client devices 4, 34 and server system 24 maybe operatively coupled by network 20. Network 20 may include wired orwireless networks or both. For example, network 20 may include awide-area network such as the Internet, a local-area network (LAN), awireless local-area network (WLAN), an enterprise network, or one ormore other types of networks. In some examples, network 20 may includeone or more different networks. For instance, client device 4 and serversystem 24 may communicate using a WLAN, and client devices 34A, 34B maycommunicate with server system 24 using the Internet.

Examples of client devices 4, 34, may include, but are not limited to,portable or mobile devices such as mobile phones (including smartphones), laptop computers, personal digital assistants (PDAs), portablegaming devices, portable media players, and e-book readers. Clientdevice 4 and each of client devices 34 may be the same or differenttypes of devices. For example, client device 4 and client device 34A mayboth be mobile phones. In another example, client device 4 may be amobile phone and client device 34A may be a desktop computer.

Client devices 4, 34 may include one or more input devices 10. Inputdevice 10 may include keyboards, pointing devices, microphones,presence-sensitive screens, and cameras capable of recording one or moreimages or video, as non-limiting examples. Client devices 4 and 34 mayalso include one or more output devices, e.g., output device 12 ofclient device 4. Examples of output device 12 may include a videographics card, computer display, sound card, presence-sensitive screen,and speakers.

Client devices 4, 34 may include media applications 6, 36. Mediaapplications 6, 36 may provide similar or the same functionality. Insome examples, media applications 6, 36 may include mobile or desktopcomputer applications that provide functionality described here. Mediaapplications 6, 36 may be, for example, a media player application, amedia viewer application, a media browser application, a mediaorganization application, a media purchasing application, etc. Mediaapplications 6, 36 may include user activity modules, such as useractivity module 8 as shown in media application 6.

Media application 6 may cause output device 12 to display GUI 14. GUI 14may include graphical elements such as social network activity entries16A, 16B. Graphical elements may include any visually perceivable objectthat may be displayed in GUI 14. Examples of graphical elements mayinclude a background image, video feed, text, control buttons, inputfields, or scroll bars. Social network activity entries 16A, 16Bcorrespond to user activity generated by other users within a socialnetwork of user 2. In other words, user 2 may be a member of one or moresocial network services and activity of other users of the socialnetwork services may be published to a user account of user 2 at thesocial network services.

For example, social network activity entry 16A includes user activityinformation generated by a user named “John Doe” (e.g., user 38A) Socialnetwork activity entry 16A indicates that user 38A purchased a song byUsher, titled “OMG” approximately four hours ago. Since the time atwhich social network activity entry 16A was published (i.e., in the lastfour hours), various users commented on social network activity entry16A three times and no one +1'd the entry. As another example, socialnetwork activity entry 16B includes user activity information generatedby a user named “Leah Cole” (e.g., user 38B). Social network activityentry 16B indicates that user 38B commented on user 38A's song purchasefive minutes ago and one person +1'd her comment. In some examples, theuser activity of user 38A and user 38B can be automatically published toother users within the social network in real-time or near real-timesuch that shortly after user 38A purchased User's “OMG”, social networkactivity entry 16A was published and viewable by user 2 in GUI 14without requiring user 38A to enter a command to cause the user activityto be published.

In at least one implementation, user activity module 8 is configured togenerate user activity information in response to a user's (e.g., user2) activity with media application 6. In some examples, user 2 mayconfigure user activity module 8 to continuously capture the user'sactivity with media application 6 and generate user activityinformation. In other examples, user 2 may configure user activitymodule 8 to capture the user's activity with media application 6 for alimited duration, to capture only certain types of activities (e.g.,listening to music, reading books, purchasing applications, etc.), ornot to capture the user's activity with media application 6.

User activity may refer to a user playing, viewing, purchasing,organizing, commenting, or otherwise interacting with media content, forexample, via a media application. That is, the user activity informationinclude captured user interactions with media content items. In at leastsome implementations, user activity information may comprise one or moreof: (1) a user identifier (e.g., user name, identification code, etc.)that identifies a user that performed the user activity, (2) a mediacontent identifier (e.g., artist name, content title, identificationcode, etc.) that identifies a media content item associated with theuser activity, (3) an action identifier that identifies one or moreactions (e.g., play, view, purchase, organize, comment, etc.) performedwith respect to the media content item, (4) a time identifier thatidentifies a time at which the one or more actions were performed, (5) amedia application identifier that identifies a type of media application(e.g., iTunes, Zune, etc.) utilized to perform the one or more actions,(6) other suitable information. User activity module 8 may be configuredto automatically generate user activity information responsive to user 2interacting with media application 6. That is, user activity module 8may generate the user activity information responsive to the userinteracting with media application 6 without receiving further userinteraction (e.g., a command or other direct indication) from user 2 togenerate the user activity information. In various instances, useractivity associated with user 2 may also be included within GUI 14.

User activity information generated by user activity module 8 may besent by user activity module 8 from client device 4 to server system 24where the user activity information or a portion thereof may bepublished to other users (e.g., to users 38A, 38B of client devices 34A,34B, respectively, by user activity server 26). As one example, user 2may operate media application 6 to access or otherwise interact with oneor more media content items stored locally at client device 4 or atremote data store such as at server system 24. User activity module 8then sends at least an indication of the user activity (e.g., a messagethat indicates that user 2 played a particular song, bought a particularsoftware application, read a book, etc.) to user activity server 26 vianetwork 20. In some examples, in addition to, or instead of, sending theuser activity information to user activity server 26, the user activityinformation generated by user activity module 8 may be stored locally atclient device 4.

In some examples, user activity module 8 may include a plug-in for mediaapplication 6. For example, user 2 may download user activity module 8from server device 4 or other source as a plug-in for media application6. However, user activity module 8 may include an integrated portion ofmedia application 6, in various instances. In at least someimplementations, user activity module 8 and/or media application 6 mayinstead reside at a server (e.g., media server 28 of server system 24)that is remote from client device 4, whereby user 2 may operate clientdevice 4 to interact with the remote media application (e.g., mediaserver 28) via network 20. Accordingly, user activity module 8 mayreside at any suitable location or combination of locations in acomputing network. In at least some implementations, user activitymodule 8 may include an application programming interface (API) thatenables other computer applications or programs (such as e.g., useractivity server 26 or other suitable resource) to obtain user activityinformation or user association information from user activity module 8or to provide user association information to user activity module 8.

In some embodiments, user activity server 26 can be configured to obtainuser activity information from one or more of client devices 4, 34 andpublish the user activity information or portion thereof to other users.User activity information may be published to a subset of users of asocial network as defined by user association information linking usersin the social network. In some examples, user activity server 26 mayobtain user association information from each user of a social networkvia respective clients. User activity server 26 may utilize userassociation information to control publication of user activityinformation among users of the social network. The user associationinformation may specify a subset of the users of the social network towhich the user activity information should be published (i.e., enable asubset of the users of the social network to view the user activityinformation) or may specify that the user activity information should bepublished to all of the users of the social network (i.e., enable all ofthe users of the social network to view the user activity information).In general, the user association information specifies one or moregroups of users to which the user activity information should bepublished or otherwise made available. The groups of users may includeall users of one or more social network services or a subset of theusers of the one or more social network services.

In some examples, user activity server 26 may utilize previouslyspecified user association information (i.e., user associationinformation that is not provided to user activity server 26 at the timewhen user activity server 26 generates the user activity informationand/or receives the user activity information from one of client devices4, 34) to control the publication of the user activity information. Thatis, in some examples, a user (e.g., user 2) may provide a default groupof users to which to publish the user activity information. User 2 mayoverride, modify, or otherwise change the previously provided userassociation information by, for example, providing new user associationinformation at or about the same time as performing the one or moreactivities with respect to the media content items.

User 2 may also provide different user association information for eachdifferent type of media content item, for each different social networkservice, and/or for each different type of activity taken by user 2 withrespect to the media content items. For example, user 2 may provideruser association information that specifies that a first group of users(e.g., a book club) should received user activity information aboutbooks that user 2 is reading and provide different user associationinformation that specifies that a second group of users should receiveuser activity information about music user 2 has purchased. As anotherexample, user 2 may provide user association information to specifyvarious groups of users that may receive user activity information aboutpurchased media content items, installed media content items, and/ordeleted media content items. The groups of users may include users thatall belong, subscribe, or are otherwise members of one social networkservice or that span two or more different social network services(i.e., where a first user of the group belongs to a first social networkservice and a second user of the group belongs to a second socialnetwork service).

In other examples, such as when no user association information waspreviously provided by a user, user activity server 26 may cause useractivity client 8 to display at GUI 14 a request for user associationinformation. User 2 may then provide the user association informationthat is used to control the publication of the user activity informationgenerated based on the actions taken by user 2 with respect to the mediacontent items. In at least some implementations, user activityinformation may be published to only the subset of users indicated bythe user association information, thereby enabling a user to controlpublication of the user's activity information. In at least someimplementations, user activity server 26 may comprise an applicationprogramming interface (API) that enables other computer applications orprograms to provide user activity information or user associationinformation to user activity server 26 or to obtain user activityinformation or user association from user activity server 26.

FIG. 2 is a block diagram illustrating an example computing device forgenerating and publishing user activity information based at least inpart of user association information, in accordance with one or moreaspects of this disclosure. FIG. 2 illustrates only one particularexample of server system 24, and many other example embodiments ofserver system 24 may be used in other instances.

As shown in the specific example of FIG. 2, server system 24 includesone or more processors 40, memory 42, a network interface 44, and one ormore storage devices 46. Server system 24 also includes an operatingsystem 48 that is executable by server system 24. Server system 24, inone example, further includes user activity server 26 and media server28 that are also executable by server system 24. Each of components 40,42, 44, 46, 48, 26, and 28 may be interconnected (physically,communicatively, and/or operatively) for inter-component communications.

Processors 40, in one example, are configured to implement functionalityand/or process instructions for execution within client device 4. Forexample, processors 40 may be capable of processing instructions storedin memory 42 or instructions stored on storage devices 46.

Memory 42, in one example, is configured to store information withinserver system 24 during operation. Memory 42, in some examples, isdescribed as a computer-readable storage medium. In some examples,memory 42 is a temporary memory, meaning that a primary purpose ofmemory 42 is not long-term storage. Memory 42, in some examples, isdescribed as a volatile memory, meaning that memory 42 does not maintainstored contents when the computer is turned off. Examples of volatilememories include random access memories (RAM), dynamic random accessmemories (DRAM), static random access memories (SRAM), and other formsof volatile memories known in the art. In some examples, memory 42 isused to store program instructions for execution by processors 40.Memory 42, in one example, is used by software or applications runningon server system 24 (e.g., applications 50) to temporarily storeinformation during program execution.

Server system 24, in some examples, also includes a network interface44. Server system 24, in one example, utilizes network interface 44 tocommunicate with external devices via one or more networks, such as oneor more wireless networks. Network interface 44 may be a networkinterface card, such as an Ethernet card, an optical transceiver, aradio frequency transceiver, or any other type of device that can sendand receive information. Other examples of such network interfaces mayinclude Bluetooth®, 3G and WiFi® radios in mobile computing devices aswell as USB. In some examples, server system 24 utilizes networkinterface 44 to wirelessly communicate with an external device such asclient devices 4, 34 of FIG. 1, a mobile phone, or other networkedcomputing device.

Storage devices 46, in some examples, also include one or morecomputer-readable storage media. Storage devices 46 may be configured tostore larger amounts of information than memory 42. Storage devices 46may further be configured for long-term storage of information. In someexamples, storage devices 46 include non-volatile storage elements.Examples of such non-volatile storage elements include magnetic harddiscs, optical discs, floppy discs, flash memories, or forms ofelectrically programmable memories (EPROM) or electrically erasable andprogrammable (EEPROM) memories. As shown in FIG. 2, storage devices 46includes association information data repository (ASSOC. INFO.) 48 anduser activity data repository 50. Association information datarepository 50 and user activity data repository 50 may each beconfigured as a database, flat file, table, or other data structurestored within storage devices 46 of server system 24. In some examples,association information data repository 50 and user activity datarepository 50 may be configured as two separate data repositories while,in other examples, they may be a part of a single data repository.

Server system 24 may include operating system 48. Operating system 48,in some examples, controls the operation of components of server system24. For example, operating system 48, in one example, facilitates theinteraction of user activity server 26 and/or media server 28 withprocessors 40, memory 42, network interface 44, and storage device 46.Applications 50, user activity server 26, and media server 28 may eachinclude program instructions and/or data that are executable by serversystem 24. For example, user activity server 26 may include instructionsthat cause server system 24 to perform one or more of the operations andactions described in the present disclosure.

In accordance with aspects of the present disclosure, user activityserver 26 may receive user association information and/or user activityinformation from client devices 4, 34 of FIG. 1. For example, uponinstallation or configuration of user activity module 8 at client device4, user 2 may provide user association information that specifies one ormore one or more social network services (e.g., Google+, Facebook,LinkedIn, etc.) and/or includes information that identifies one or moreusers that are to receive user activity information generated responsiveto actions performed by user 2. User activity module 8 may send the userassociation information to user activity server 26. User activity server26 may receive the user association information and store it withinassociation information data repository 48. In general, associationinformation data repository 48 may be configured to store any type ofuser association information received from one or more different clientdevices (e.g., client devices 4, 34).

User activity server 26 may authenticate at the one or more socialnetwork services using any user authentication information included inthe user association information such that, when user activity server 26either generates or receives user activity information, user activityserver 26 may publish at least an indication of the user activityinformation at the social network services such that the user activityinformation is accessible to one or more users of the social networkservices. User activity server 26 may also configure, e.g., a useraccount associated with user 2, based on the user identificationinformation included in the user association information such that, whenuser activity server 26 generates or receives user activity informationassociated with user 2, at least an indication of the user activityinformation is published to the users identified in the received userassociation information.

User activity server 26 may receive user activity information fromclient devices 4, 34 and/or may generate user activity information basedon information received from media server 28. In examples where mediaapplication 6 accesses media store at server system 24, mediaapplication 6 may exchange information with media server 28. Theinformation exchanged with media server 28 may include commands to view,playback, purchase, install, or otherwise interact with media content aswell as user account information. Media server 28 may receive thecommands and perform various actions based on the commands, such asoutputting an audio file to media application 6. As media server 28processes the commands, media server 28 may send an indication of thecommands, the media content associated with the commands, and userinformation that identifies the user interacting with media application6 (e.g., user 2) to user activity server 26 for generation of useractivity information. User activity server 26 generates the useractivity information based on the information received from media server28 and stores at least an indication of the user activity information inuser activity data repository 50.

User activity server 26 may publish user activity information whetheruser activity server 26 receives user activity information from useractivity module 8 or generates user activity information frominformation received from media server 28. When publishing the useractivity information, user activity server 26 may use user associationinformation and/or user authentication information received from a user(e.g., user 2). In some examples, the user authentication information isincluded within the received user association information. User activityserver 26 identifies any social network services for which it hasreceived user authentication information and authenticates with thesocial network services. User activity server 26 then publishes the useractivity information at the social network services on behalf of theuser and without requiring the user to take further actions to cause theuser activity information to be published. In some examples, whenpublishing user activity information for a first time at each socialnetwork service, user activity server 26 may send a command to useractivity module 8 to cause a notification and/or request forauthorization to be displayed in GUI 14.

User activity server 26 may also publish the user activity informationother than at social network services. For example, when the userassociation information includes information about one or more otherusers (e.g., an email address, instant messaging username, phone number,etc.), user activity server 26 may text, email, call, message, orotherwise publish the user activity information to the users specifiedin the user association information. In examples where social networkservice information as well as information about one or more other usersare both included in the user association information received by useractivity server 26, user activity server 26 may both publishing the useractivity information at the social network services and send the useractivity information to the other users in a manner determined based onthe information about the other users.

FIG. 3 is a screen illustration showing an example graphical userinterface that includes published user activity information, inaccordance with one or more aspects of the present disclosure. Forpurposes of illustration only, the example screen illustration isdescribed below within the context of system 2 of FIG. 1. As oneexample, FIG. 3 depicts a GUI 60 may be configured for a mobile device(e.g., client device 4) and may comprise part of a software applicationfor a mobile device (e.g., media application 6).

GUI 60 provides an example of user activity information that may bepublished to a user activity feed presented on a graphical display of aclient. GUI 60 shows for a given user 62, a user activity feed thatcomprises user activity information generated in response to useractivity of other users having an associational relationship with theuser. For example, GUI 60 includes follower information 64, followinginformation 66, search box 68, and user activity entries 70. User 62 mayprovide a profile picture to include in GUI 60 that may be displayedwhen user 62 views GUI 60 and may also be included in user activityentries 70 that include user activity information based on actionsassociated with user 62.

User 62 may select one or more other users to follow and may be followedby one or more other users. To follow another user means to subscribe toor otherwise receive user activity information for the other user. To befollowed by another user means that the other user receives useractivity information generated based on actions associated with user 62.GUI 60 may include a graphical and/or textual indication of a number ofusers following user 62 (i.e., followers 64) and a number of users thatuser 62 is following (i.e., following 66).

Each user activity entry 70 may include one or more of a user identifier72, an action identifier 74, a media content identifier 76, and anactivity status indicator 78 for a given user. User identifier 72 mayinclude a name of a user and a picture or other image selected by theuser. Action identifier 74 includes information about how the user(e.g., user 72) interacted with the media application and/or otherinformation describing a user activity. For example, in the first useractivity entry 70, action identifier 74 indicates that John Smith“scored an 86% in music compatibility” with user 62. In the second useractivity entry 70, action identifier 74 indicates that Jane Smith made apurchase. In some examples, user activity entry 70 includes mediacontent identifier 76 that indicates a particular name, artist,publisher, title, etc. of the media content associated with actionidentifier 74 (e.g., the Radio application for Android was installed byLeah Cole). Media content identifier 76 may include a link to a storewhere a user can purchase the media content, link to additionalinformation about the media content, and/or activate a preview of themedia content (e.g., when the media content is an audio file). Activitystatus indicator 78 includes information about when the user activityoccurred (i.e., “3 hours ago”), whether any users have commented on theuser activity (i.e., “0 comments”), and whether any users have +1'd theuser activity (i.e., “3+1's”).

GUI 60 may also include buttons 80A-E that may enable a user (e.g., user62) to cause different graphical user interfaces to be displayed andperform different actions. For example, activation of button 80A maycause a media player interface to be displayed that may enable a user tocontrol playback of various audio and/or video content. Activation ofbutton 80B may cause a social network service interface to be displayedthat may enable a user to configure user association information. Insome examples, the social network service interface may includeadditional information about media content recommended by one or moreusers that user 62 is following. Activating button 80C may cause a storeinterface to be displayed that may enable a user to preview, purchase,and download additional media content. Activating button 80D may cause adownload interface to be displayed that includes information about anymedia content that may be actively downloading or may have beenpreviously downloaded (e.g., from an online store). Activating button80E may cause other interfaces to be displayed that may enable a user toperform additional functions. For example, a configuration interface maybe displayed that enables a user to configure user account informationand manage the distribution of user activity information associated withthe user.

While not depicted in FIG. 3, GUI 60 may further include a mediaapplication identifier to indicate that media content identifier 76 waspurchased via a particular media application, such as iTunes, forexample. In at least some implementations, user activity information maybe presented as hyperlinks that enable a user to select the hyperlink toaccess additional information. For example, a media content identifiermay be selected by a user to sample and/or purchase the media contentidentified by the media content identifier. Selectable icons may also bepresented to enable users to access additional information, sample, orpurchase media content.

FIG. 4 is a screen illustrating showing another example user interfacethat includes published user activity information, in accordance withone or more aspects of the present disclosure. For purposes ofillustration only, the example screen illustration is described belowwithin the context of system 2 of FIG. 1. As one example, FIG. 4 depictsa graphical user interface 90 that may be accessed via a browserapplication (e.g., executing at one of client devices 4, 34).

GUI 90 may be generated by a browser application responsive to a user(e.g., user 2) logging into a website. As shown in FIG. 4, GUI 90includes active users display 92 and user activity entries 94A-94D.Active users display 92 may include one or more graphicalrepresentations of users within a social network of user 2 that are alsologged in to or otherwise accessing the website while user 2 is loggedin to the website. For example, if user 38A of FIG. 1 is within a socialnetwork of user 2 (e.g., as determined by user association information),a graphical representation of user 38A may be included in active usersdisplay 92. The graphical representation may be chosen by the user whomit represents (e.g., an avatar). A user may select one or more of theusers included in active users display 92 to view user activityassociated with the selected user, chat with the user, or otherwisefilter content based on or interact with the selected user.

Each user activity entry 94 may include a user graphics 96 and mediacontent graphics 98. User graphics 96 may be a graphical representationassociated with a user and, in various instances, is the same graphicalrepresentation as the graphical representation for the user displayed inactive users display 92. Media content graphics 98 may be a graphicalrepresentation of the media content described in each user activityentry 94. For example, user activity entry 94A describes a userlistening to a song. In this example, media content graphics 98 may bealbum cover art of the album that includes the particular version of thesong that listened to by the user. If no cover art is associated withthe song or is otherwise unavailable, media content graphics 98 may be ageneric icon that may be used for any music media content. In anotherexample, user activity entry 94B includes a user +1'ing a softwareapplication. In this example, media content graphics 98 may be agraphical icon associated with the application. If no graphical icon isassociated with the application or if the graphical icon is unavailable,media content graphics 98 may be a generic icon that represents anymedia content that is a software application. Similarly, if the mediacontent described in a user activity entry is a book, the media contentgraphics may be cover art for the book, if available, or a generic iconthat may be used for any book.

User activity entries 94 may also include heart button 100, and playbutton 102. Heart button 100 may enable a user to +1, like, or otherwiseindicate approval of the respective user activity entry 94. Play button102 may be included in user activity entries 94 when user activityentries describe media content that may be played for a user, such as anaudio and/or video file. In some examples, a limited preview of thesong, book, video, or other media content may be played for a user uponactivating play button 102. In some example, such as when the mediacontent described in the user activity entry is an application, playbutton 102 may not be included. Alternatively, when the media contentdescribed in the user activity entry is an application, play button 102may be included, but may redirect the user to a web page or other sourcefor information about the application.

FIG. 5 is a flow chart illustrating an example process for aggregatingand publishing user activity information based at least in part of userassociation information, in accordance with one or more aspects of thisdisclosure. For purposes of illustration only, the example process isdescribed below as being performed by one or more elements of system 2of FIG. 1 and server system 24 of FIG. 2.

User activity server 36 may receive user association information (110).User association information may define associational relationshipsbetween users in a social network. For example, a user may define anassociational relationship between the user and one or more other users.Such an associational relationship may be referred to as a “friend” insome social networks. As one example, server system 24 may obtain (e.g.,via user activity server 26) user association information from clientdevices 4, 34. For example, user 2 of client device 4 may select (e.g.,via user activity module 8, media application 6, or other suitableapplication) one or more other users with which to form an associationalrelationship. Users may be identified and distinguished from each otherwithin a social network by respective user identifiers, for example.

User association information may be sent by client devices 4, 34 toserver system 24. For example, user activity module 8 may send userassociation information to server system 24 or may send an indication ofa location where the user association information may be obtained byserver system 24. Server system 24 may receive the user associationinformation from client devices 4, 34 and store the user associationinformation in user association information data repository 48. Forexample, user association information data repository 48 may comprise arelational database where, for each user, a number of other users havingan associational relationship with that user are identified.

In at least some implementations, a user may import user associationinformation from a pre-existing social network. For example, useractivity module 8 may comprise or support an application programminginterface by which user association information may be obtained frompre-existing third party social networks such as Facebook, Twitter,MySpace, iTunes Ping, etc. for a given user.

User activity server 26 may also received and/or generate user activityinformation responsive to user activity (112). In at least someimplementations, user activity information may be generated by a useractivity module such as previously described with respect to useractivity module 8 and user activity server 26. User activity informationmay be generated in a manner that is transparent to the user as the userinteracts with media content via a media application.

User activity may refer to a user playing, viewing, purchasing,organizing, commenting, or otherwise interacting with media content, forexample, via a media application. For example, user 2 of client device 4may operate media application 6 to play, view, purchase, organize,comment on, or otherwise interact with media content. Media content mayreside locally at client device 4 or may reside at a remote data storesuch as within server system 24. Organizing media content may includegrouping media content (e.g., creating or modifying playlists), forexample. Commenting on media content may include, for example, tagging,rating, or associating commentary with media content.

In at least some implementations, user activity module 8 may generateuser activity information responsive to user activity with mediaapplication 6. In at least some implementations, user activityinformation may comprise one or more of: (1) a user identifier (e.g.,user name, identification code, etc.) that identifies a user thatperformed the user activity, (2) a media content identifier (e.g.,artist name, content title, identification code, etc.) that identifies amedia content item associated with the user activity, (3) an actionidentifier that identifies one or more actions (e.g., play, view,purchase, organize, comment, etc.) of the user activity performed withrespect to the media content item, (4) a time identifier that identifiesa time at which the one or more actions were performed, (5) a mediaapplication identifier that identifies a type of media application(e.g., iTunes, Zune, etc.) utilized to perform the one or more actions,and (6) other suitable information.

Server system 24 may receive user activity information from any numberof clients. Server system 24 may store user activity informationreceived from clients in user activity data repository 50. User activityserver 26 may obtain user activity information received from clients andmay process the user activity information. For example, user activityserver 26 may obtain a user identifier from the user activityinformation received from a client, and may identify other users havingan associational relationship with the user identified by the useridentifier based on user association information for the user. Useractivity server 26 may direct user activity information or portionthereof to other network resources for publication to other users.

User activity server 26 may publish user activity information based onthe received user association information (114). As one example, serversystem 24 may send user activity information or select portions thereofto one or more network resources for publication to other users havingan associational relationship with a user from which the user activityinformation originated. In this way, a user having an associationalrelationship with another user may obtain notification of the user'sactivity with media content via a media application.

Publishing user activity information may include presenting one or moreof: (1) the user identifier or representation thereof, (2) the mediacontent identifier or representation thereof, (3) the action identifieror representation thereof, (4) the time identifier or representationthereof, (5) the media application identifier or representation thereof,(6) other suitable information. In at least some implementations, useractivity server 26 and/or user activity module 8 may comprise an API forenabling user activity information to be obtained by pre-existing socialnetwork platforms such as, for example, Facebook, Twitter, MySpace,iTunes Ping, etc.

The techniques described herein may be implemented in hardware,software, firmware, or any combination thereof. Various featuresdescribed as modules, units or components may be implemented together inan integrated logic device or separately as discrete but interoperablelogic devices or other hardware devices. In some cases, various featuresof electronic circuitry may be implemented as one or more integratedcircuit devices, such as an integrated circuit chip or chipset.

If implemented in hardware, this disclosure may be directed to anapparatus such a processor or an integrated circuit device, such as anintegrated circuit chip or chipset. Alternatively or additionally, ifimplemented in software or firmware, the techniques may be realized atleast in part by a computer-readable data storage medium comprisinginstructions that, when executed, cause a processor to perform one ormore of the methods described above. For example, the computer-readabledata storage medium may store such instructions for execution by aprocessor.

A computer-readable medium may form part of a computer program product,which may include packaging materials. A computer-readable medium maycomprise a computer data storage medium such as random access memory(RAM), read-only memory (ROM), non-volatile random access memory(NVRAM), electrically erasable programmable read-only memory (EEPROM),flash memory, magnetic or optical data storage media, and the like. Insome examples, an article of manufacture may comprise one or morecomputer-readable storage media.

In some examples, the computer-readable storage media may comprisenon-transitory media. The term “non-transitory” may indicate that thestorage medium is not embodied in a carrier wave or a propagated signal.In certain examples, a non-transitory storage medium may store data thatcan, over time, change (e.g., in RAM or cache).

The code or instructions may be software and/or firmware executed byprocessing circuitry including one or more processors, such as one ormore digital signal processors (DSPs), general purpose microprocessors,application-specific integrated circuits (ASICs), field-programmablegate arrays (FPGAs), or other equivalent integrated or discrete logiccircuitry. Accordingly, the term “processor,” as used herein may referto any of the foregoing structure or any other structure suitable forimplementation of the techniques described herein. In addition, in someaspects, functionality described in this disclosure may be providedwithin software modules or hardware modules.

Various embodiments have been described. These and other embodiments arewithin the scope of the following claims.

What is claimed is:
 1. A method of automatically publishing, to one ormore social network services, information about user activitiesregarding media content items, the method comprising: receiving, by acomputing system, user configuration information for a user, the userconfiguration information indicating one or more types of activities,selected by the user from multiple types of activities, for which thecomputing system is to capture user activity information; receiving, bythe computing system, the user activity information regarding a mediacontent item, wherein: the user is a member of one or more socialnetwork services, the user activity information is automaticallygenerated in response to one or more activities taken by the user withrespect to the media content item, the one or more types of activitiescomprise at least one of playing the media content item, viewing themedia content item, purchasing the media content item, organizing themedia content item, commenting on other user activity informationregarding the media content item, executing the media content item, ordownloading the media content item, and the user activity information istransmitted to the computing system; receiving, by the computing system,user association information that includes an indication of one or moreusers of the one or more social network services to whom the useractivity information is to be made accessible; and automaticallypublishing, by the computing system, the user activity information tothe one or more social network services based on the user associationinformation, such that the user activity information is accessible tothe one or more users.
 2. The method of claim 1, wherein the userassociation information includes user authentication information for theone or more social network services, and wherein automaticallypublishing, by the computing system, the user activity informationcomprises: authenticating at each of the one or more social networkservices using the user authentication information; and publishing theuser activity information at each of the one or more social networkservices.
 3. The method of claim 2, wherein the user associationinformation includes an indication of a subset of users of at least oneof the one or more social network services, and wherein automaticallypublishing the user activity information to the one or more socialnetwork services comprises publishing the user activity to the subset ofthe users.
 4. The method of claim 1, wherein the user associationinformation includes contact information for one or more other users,and wherein automatically publishing the user activity informationcomprises outputting the user activity information to the one or moreother users based on the contact information.
 5. The method of claim 4,wherein the contact information includes at least one of an emailaddress, a telephone number, and an instant messaging username, andwherein automatically publishing the user activity information comprisesat least one of 1) sending an email to the email address, 2) sending atext message to the telephone number, and 3) sending an instant messageto the instant messaging username.
 6. The method of claim 1, whereinreceiving the user activity information comprises: receiving, by thecomputing system, commands that cause a media server of the computingsystem to perform one or more actions on media content items stored atthe computing system; and generating, by the computing system, the useractivity information based on the one or more actions.
 7. The method ofclaim 1, wherein the received user activity information comprises atleast one of (1) a user identifier that identifies the user thatperformed the one or more actions, (2) a media content identifier thatidentifies a media content item associated with the one or more actions,(3) an action identifier that identifies the one or more actionsperformed with respect to the media content item, (4) a time identifierthat identifies a time at which the one or more actions were performed,and (5) a media application identifier that identifies a type of mediaapplication utilized to perform the one or more actions.
 8. The methodof claim 1, wherein the user activity information is generated by a useractivity module of a client device at which the user takes the one ormore activities with respect to the media content item.
 9. The method ofclaim 8, wherein the user activity module is a plug-in for a mediaapplication of the client device.
 10. The method of claim 1, wherein theuser is a first user, the method further comprising: receiving, by thecomputing system, a comment from a second user about the published useractivity information; updating, by the computing system, the useractivity information to include the comment; and publishing, by thecomputing system, the updated user activity information to at least oneof the one or more social network services.
 11. The method of claim 1,further comprising: receiving, by the computing system, an indication ofan approval of the published user activity information; updating, by thecomputing system, the user activity information to include theindication of the approval; and publishing, by the computing system, theupdated user activity information to at least one of the one or moresocial network services.
 12. The method of claim 1, further comprising:receiving, by the computing system and from a second client device, acommand to preview the media content item; and outputting, by thecomputing device, at least a portion of the media content item to thesecond client device.
 13. The method of claim 1, wherein receiving theuser association information comprises: receiving, by the computingsystem, social network service user authentication information for theone or more social network services; authenticating, by the computingsystem, at each of the one or more social network services; andreceiving the user association information from the one or more socialnetwork services.
 14. The method of claim 1, wherein the user activityinformation includes a user identifier that uniquely identifies theuser, the method further comprising: identifying, by the computingsystem, one or more other users having an associational relationshipwith the user based on the user identifier; and outputting the useractivity information to the one or more identified other users.
 15. Themethod of claim 1, wherein the media content item includes audiocontent, visual content, textual content, and program content.
 16. Themethod of claim 1, wherein automatically publishing, by the computingsystem, the user activity information to the one or more social networkservices comprises publishing the user activity information to the oneor more social network services without receiving, by the computingsystem, further user interaction prior to publishing the user activityinformation.
 17. A non-transitory computer-readable storage mediumcomprising instructions that, if executed by one or more processors of acomputing system, cause the computing system to perform operationscomprising: receiving user configuration information for a user, theuser configuration information indicating one or more types ofactivities, selected by the user from multiple types of activities, forwhich the computing system is to capture user activity information;receiving the user activity information, wherein the user activityinformation is automatically generated in response to one or moreactions performed by a user, wherein the user is a member of one or moresocial network services, and wherein the one or more types of activitiescomprise at least one of playing media content, viewing media content,purchasing media content, organizing media content, commenting on otheruser activity information, executing media content, or downloading mediacontent; receiving user association information that includes anindication of one or more users of the one or more social networkservices to whom the user activity information is to be made accessible;and automatically outputting the user activity information to the one ormore social network services based on user association informationspecified by the user, such that the user activity information isaccessible to the one or more users.
 18. The non-transitorycomputer-readable storage medium of claim 17, wherein automaticallypublishing, by the computing system, the user activity information tothe one or more social network services comprises publishing the useractivity information to the one or more social network services withoutreceiving, by the computing system, further user interaction prior topublishing the user activity information.
 19. A system comprising: aclient computing device having one or more processors and memory, theclient computing device configured to: receive user configurationinformation for a user, the user configuration information indicatingone or more types of activities, selected by the user from multipletypes of activities, for which the computing system is to capture useractivity information, wherein the one or more types of activitiescomprise at least one of playing a media content item, viewing the mediacontent item, purchasing the media content item, organizing the mediacontent item, commenting on other user activity information regardingthe media content item, executing the media content item, or downloadingthe media content item; automatically capture, based on the one or moretypes of activities, interactions by a user of the client computingdevice with the media content item; and transmit to a server computingsystem 1) the captured interactions and 2) information usable todetermine one or more individuals or groups, of one or more socialnetwork services, to whom the captured interactions are to be madeavailable; wherein the server computing system is configured to:receive 1) the captured interactions, and 2) the information; determine,based on the information, the one or more individuals or groups to whomthe captured interactions are to be made available; and automaticallymake the captured interactions available to the determined one or moreindividuals or groups by at least publishing the captured interactionsto the one or more social network services.
 20. The system of claim 19,wherein automatically making the captured interactions available to thedetermined one or more individuals or groups comprises making thecaptured interactions available to the determined one or moreindividuals or groups without receiving further user interaction priorto making available the captured user interactions.